1. Field of the Invention
The present invention relates to graphics systems and more particularly to apparatus and methods for increasing the speed at which graphic images can be clipped and drawn to a display window. Still more particularly, the present invention relates to a system and method for increasing the processing speed of clipping where the resultant image is written directly to the display frame buffer.
2. Background and Related Art
Windowed graphic systems display a number of overlapping windows on a physical display device such as a CRT screen. Each window is updated by one or more applications. Each application writes text or graphic images to its assigned window or windows. Because the windows overlap, portions of a window may not be visible. Writing text or image data to an invisible window portion is wasteful of processing capacity.
Prior art graphic systems implement a clipping buffer to control writing of data to the visible portions of the frame buffer. The clipping buffer is defined to contain the same number of horizontal and vertical positions as the display screen, e.g. 1024.times.1278. Each clipping buffer position contains a value indicating which, if any, window is visible at that point. The clipping buffer value is tested by each particular window and only those matching the clipping buffer value write to the frame buffer. Window clipping is typically performed by hardware in the graphics pipeline in hardware graphics adapters.
The increased processing capacity of technical workstations, particularly those based on RISC architecture designs, allow high function graphics processing to be performed without special purpose graphics hardware. The system processor can be used to perform graphics functions including transformation, scaling, and rendering. Use of the system processor rather than special purpose graphics hardware poses a problem for window clipping.
Double buffered graphics systems maintain two frame buffer images: one for current display (the front buffer); and one being updated by the applications (the back buffer). The back buffer is periodically copied to the front buffer thereby updating the display. Windowed systems are frequently implemented with a back buffer for each window that is clipped to the visible portion during the copy to the front buffer. The copy is performed as a block transfer operation and clipping can be efficiently performed using block mode operations.
Existing system processor based graphics functions (typically two dimensional graphics) typically write directly to the frame buffer and do not use double buffering. Clipping must be performed for each pixel as it is generated when the pixels are written directly to the frame buffer. This can result in inefficient and poor performance of the graphics system.
A process for efficiently performing window clipping when rendering directly to the front buffer is needed. The technical problem addressed by this invention is the provision of a system and method for efficiently performing window clipping in this situation.